# 构建一个生成器，用于生成1~10的数字
# 或者实现一个斐波那切数列生成器
"""
 yield 是一个关键字，用于定义生成器函数（generator function）。
 它的作用是将一个普通函数变成一个生成器，允许函数在执行过程中暂停并
 返回中间结果，稍后可以从暂停的地方继续执行
"""

def f(n):
    f0,f1=0,1
    yield f0
    if n>1:
        yield f1
    for i in range(2,n):
        f0,f1=f1,f0+f1
        yield f1

g=f(4)
# 这两种方法的区别？
print(next(g))
print(next(g))
print(g.__next__())
print(g.__next__())